<?php
class Usersedit extends AppModel {
	var $name = 'Usersedit';
	var $useTable = false;
	
	//==========================================================================
	//バリデーション
	//==========================================================================
	var $validate = array(
		'shopid' => array(
			array(
				'rule' => 'notEmpty', 
				'message' => 'ショップIDを入力してください', 
			), 
			array(
				'rule' => 'isUnique', 
				'message' => '既に登録されているショップIDです', 
			), 
		),
		
		'mail' => array(
			array(
				'rule' => array('maxLength', 254), 
				'message' => 'メールアドレスが長すぎます', 
			), 
		),
		
		'password' => array(
			array(
				'rule' => 'notEmpty', 
				'message' => 'パスワード値が未入力です', 
			), 
			array(
				'rule' => array('between', 4, 32), 
				'message' => '4文字以上32文字以下のパスワードにしてください', 
			), 
			
		),
		
	);

	//==========================================================================
	//コールバック
	//==========================================================================
	//----------------------------------------------------------------
	//beforeValidateコールバック
	//----------------------------------------------------------------
	function beforeValidate(){
		$data = null;
		$fields = array();
		
		$flag = true;
		$default_fields = array(
			'current' => 'password', 
			'new'     => 'newpassword', 
		);
		if($data === null){
			$data = $this->data;
		}
		
		//フィールド名の反映
		//
		$fields = array_merge($default_fields, $fields);
		extract($fields);
		
		if(isset($data[$this->name][$new]) && $data[$this->name][$new] != ''){
			if(!Validation::between($data[$this->name][$new], 4, 32)){
				$this->invalidate($new, '4文字以上32文字以下のパスワードにしてください');
				$flag = false;
			}
		}
		
		//問題なければパスワードの生成
		//	
		if($flag && isset($this->data[$this->name]['newpassword']) && $this->data[$this->name]['newpassword'] != ''){
			$this->data[$this->name]['newpassword'] = $this->password($this->data[$this->name]['newpassword']);
		}
		
		return $flag;
	}

	
	//==========================================================================
	//パスワードの暗号化
	//==========================================================================
	function password($str){
		App::import('Component','Auth');
		return AuthComponent::password($str);
	}
}
?>